1. Field of the Invention
The present invention relates to data transmission using the IEEE 1394 serial bus, and more particularly, to a method of extending channels for the IEEE 1394 serial bus.
2. Description of the Related Art
The IEEE 1394 serial bus, by which it is possible to transmit data at a high speed, enables real time data transmission for multimedia applications. The IEEE 1394 serial bus provides an asynchronous service, an isochronous stream service, and an asynchronous stream service.
When isochronous stream transmission and asynchronous stream transmission is performed on the IEEE 1394 serial bus, data is transmitted by using channels. FIG. 1 shows the format of both an IEEE 1394 isochronous data packet or an asynchronous stream packet. Numbers in parentheses denote bit numbers. The IEEE 1394 isochronous packet and asynchronous stream packet consist of two quadlet headers, each of which comprise 32 bits as shown in FIG. 1, payload data of no more than the maximum payload size shown in Table 1, and CRC data. Since a channel field in the packet header shown in FIG. 1, which indicates a channel number, is comprised of six bits, the channel field can indicate up to 64 different channels. A binary value 00 is used as a two bit tag field for an upper level process and other values are reserved.
These channels, the number of which is restricted to 64, can be used in two situations. In the first situation, the channels are used as isochronous channels for multimedia data transmission in which transmission time is important. In the second situation, the channels are used as asynchronous channels for transmitting a lot of data in the form of a stream, where the stability of data is more important than the transmission time. Transmission using asynchronous channels is a newly added transmission function in the P1394a complementary standard. Both bandwidth and channel are assigned for the isochronous transmission. Bandwidth is not assigned for the asynchronous transmission of data, but channels are allocated. Asynchronous stream transmission is performed during the asynchronous transmission phase of an isochronous cycle. Meanwhile, since the total number of channels is restricted to 64, when many channels are used for an asynchronous stream transmission, the number of channels which can be used for the isochronous transmission is reduced.
FIG. 2 shows two different formats of the CHANNELS_AVAILABLE(CA) register which is included in the isochronous resource manager (IRM) of the IEEE 1394 serial bus. The channels are managed as follows in the conventional IEEE 1394 serial bus. The value of the CHANNELS_AVAILABLE(CA) register of the IRM is read to determine whether or not available channels exist. If available channels exist, the channels are assigned by performing a lock transaction using the numbers of available channels as arguments.
The isochronous transmission is performed using the assigned channels. However, since the channel field, which indicates the assigned channel numbers, comprises 6 bits, only 64 channels can be shown.
FIG. 3 describes the channel management using the CHANNELS_AVAILABLE(CA) register of the IRM in more detail. When initialization is performed by one node, all values of the CA register are set to 1. Namely, the two parts of the CA register, which are CHANNEL_AVAILABLE_HI part and CHANNEL_AVAILABLE_LO part are set to xe2x80x98FFFFxe2x80x99 as a hexadecimal value, respectively. Other nodes check whether there are available channels by performing a read transaction. If an available channel exists, the corresponding node performs a lock transaction using the number of the available channel, thereby the node sets corresponding bits of the CA register for the IRM. Thus, the bits of the CA corresponding to the channels used by the lock transaction are set to 0.
The used lock transaction has two parameters: argument and data. Namely, the lock transaction is expressed as lock(arg, data) which is a function. The argument parameter is the value of the register read by the read transaction. The data parameter is the number of the channel to be assigned. The IRM compares the value of the argument with the value existing in the register. If the value of the argument is the same as the value of the register, the value of the register is changed to the data value and the previous register value is sent to the node which requested the channels.
Meanwhile, when the bandwidth of the initial IEEE 1394 serial bus is 100 Mbps, the average bandwidth which can be used by each channel is not significantly large, for example, 1 Mbps. Therefore, the number of channels does not restrict the band width. However, it is very likely that the entire bandwidth cannot be fully used by 64 channels since the average bandwidth which can be used by each channel is large, for example, no less than 10 Mbps when the supported bandwidth is in the order of Gbps and the channels are used for asynchronous stream transmission. Namely, since the total number of channels is restricted to 64, when many channels are used for asynchronous stream transmission, the number of channels which can be used for isochronous transmission is reduced. Also, all of the 64 channels may be exhausted even though available bandwidth remains.
Although the channels of the IRM are extended, the extended channels cannot be used since only 64 channels can be expressed by an isochronous packet.
To solve the above problem, it is an object of the present invention to provide a method of extending the total number of channels of the IEEE 1394 serial bus by which it is possible to supply the shortage of 64 IEEE 1394 channels which can occur at a bandwidth in the Giga bps order when an IEEE 1394 software developer creates an application program using a channel-based data transmission function.
It is another object of the present invention to provide a method for canceling channels extended by a predetermined channel assignment through an IRM of an IEEE 1394 node according to the channel extending method.
Accordingly, to achieve the first object, there is provided a method for extending channels of the IEEE 1394 serial bus in a channel assignment through an isochronous resource manager (IRM) of an IEEE 1394 node, comprising the steps of letting the IEEE 1394 node include a CP register for physical channels and a CE register for extended channels which have the same format as the format of a CA register which holds information on channels assigned by the IRM, checking whether all the channels of the IRM are used and there is available bandwidth, setting the value obtained by adding 64 to the value of the CP register in order to obtain the value of the CE register when all the channels are used and there is available bandwidth, and generating a packet by setting a tag field value of a packet as a predetermined value where the value is set to the CE register.
The method for extending channels of the IEEE 1394 serial bus preferably further comprises extending channels by setting the tag field value of the packet as another reserved value and repeating the above processes when there are no channels which can be assigned in the CE register.
To achieve the second object, there is provided a method of canceling channels extended by a predetermined channel assignment through an IRM of an IEEE 1394 node, wherein the node comprises a CP register for physical channels and a CE register for extended channels which have the same format as the format of a CA register which shows information on channels assigned by the IRM, comprising: checking whether a channel number to be canceled corresponds to an extended channel; setting the corresponding bit of the CE register to be not in use when the channel number corresponds to the extended channel; checking whether the corresponding bit of the CP register is indicated to be in use; and canceling the corresponding channel of the IRM when the corresponding bit of the CP register is indicated to be not in use.
The method of canceling channels extended by a predetermined channel assignment through an IRM of an IEEE 1394 node preferably further comprises: checking whether the corresponding bit of the CE register is indicated to be in use when the channel number to be canceled does not correspond to an extended channel; setting only the corresponding bit of the CP register to be not in use when the corresponding bit of the CE register is indicated to be not in use; and canceling the corresponding channel of the IRM when the corresponding bit of the CE register is indicated to be in use.